1. Field of the Invention
This invention relates to disk drive head positioning. More particularly it relates to a method and apparatus for compensating for non-linearity in the torque constant of the drive actuator motor.
2. Background
One of the most important data storage devices for digital computers is a class of devices known as hard disk drives. A hard disk drive consists of a rotating disk with magnetic media deposited on one or more surfaces in concentric information tracks. Information is stored in the magnetic media by causing magnetic domains to be in one of two polarities. The domains are switched from one polarity to another in a write operation by a transducer. The same transducer also detects the state of each domain. The transducer and its mechanical housing is referred to as a head.
Information is communicated to and from the disk by placing the head over the desired track and performing either a read or write operation. The head is positioned by a mechanical arm called the actuator. The actuator is in turn caused to move by an electric motor which is connected through a digital to analog converter and amplifier to a digital computer.
A servo control loop is used to control head positioning as the head is being moved transversely across tracks and to cause the head to remain over a particular data track as the disk spins. The servo loop controls the acceleration of the head which results from a force supplied by the electric motor on the actuator. The input to the servo system are readings of head position made by the head itself. The head position is determined from position information written directly onto the disk by a servo writer as part of the manufacturing process. The position information, also referred to as servo information, includes the track number as well as an indication of how far the recording head is from the track center line. That is, a certain number of bits of information on each track are reserved for indicating position. As the head passes over the indicators, the track over which the head is sitting is determined by the head itself and supplied to the servo system. The indicators are at regularly spaced locations. Thus the input to the servo is not continuous but is sampled.
A hard disk drive must respond to read and write requests from the host computer that requires the head to move to and hover over any track on which information has been written. In order to be effective, the drive must perform this function very quickly. The time required from the receipt of a read or write request from the host computer until the head has been positioned over the track containing the information and commenced to read the information is called the "the seek time". All disk drive manufacturers work to minimize seek time. The servo system plays a critical role in minimizing seek time.
The transfer function of the servo system at its highest level of abstraction is given by Equation 1 below. ##EQU1## where G is the plant and compensator elements and H is the feedback gain. In this case, the plant includes the actuator, the head, the actuator motor and mechanical parts for moving the actuator arm. The transfer function for the actuator and mechanics (represented in Laplace transform notation) is set out in Equation 2. ##EQU2##
In equation 2, K.sub.t is the torque constant of the actuator motor, j.sub.a is the inertia of the moving parts and s.sup.2 is the Laplace operator. Thus, in order to have a servo control loop, the torque constant of the actuator motor must be known. The more accurately j.sub.a and K.sub.t are known, the more accurately the proper current can be called for by the servo system to move the head. This in turn reduces the position and velocity error that the head will have as it approaches the desired track and thus increases the speed of the seek operation.
FIG. 1 is a schematic of a hard disk drive as used with conventional desk top computers. Referring now to FIG. 1, disk drive 10 includes a substrate 12 onto which a rotating disk 14 is mounted around a center of rotation 16. An actuator arm 18 having a head 20 rotates around a center of rotation or pivot point 22. As actuator 18 rotates around point 22, head 20 sweeps across the face of disk 14. A magnet assembly 24 is attached to substrate 12 with a series of screws, not shown. A crash stop 26 is an integral part of actuator 18 and in cooperation with crash pin 32 determines the extreme positions to which head 20 may rotate around pivot point 22. The maximum distance through which head 20 can move as determined by crash stop 26 and crash pin 32 is called the stroke of the head. The stroke in turn determines the operating distance that head 20 can traverse. This in turn determines the total number of tracks on disk 14 that can be addressed by head 20.
FIG. 2 shows actuator 18 and a cutaway of magnet assembly 24. Referring to FIG. 2, actuator 18 rotates around actuator pivot point 22. Actuator 18 is bonded firmly to an electrical coil 32. Coil 32 is the rotor portion of a dc motor. The stator of the dc motor consists of permanent magnets shown schematically at reference numerals 34 and 36 in FIG. 2.
FIG. 3 is a cross section taken through points A--A in FIG. 2. Referring now to FIG. 3, there is a first permanent magnet 38 having its north pole at reference numeral 40 and its south pole at reference numeral 42. There is a second permanent magnet 44 which includes a south pole 46 and a north pole 48. Surfaces 50 and 52 represent the upper and lower surfaces of magnet assembly 24 in FIG. 1. The two permanent magnets 38 and 44 are typically glued to surfaces 50 and 52 in the manufacturing process. The cross section of coil 32 of FIG. 2 is shown at reference numerals 54 and 56 in FIG. 3.
Referring again to FIG. 2, the combination of coil 32 and permanent magnets 34 and 36 form a dc motor. When a dc current is impressed on coil 32, a torque, T, operating around center of rotation 22 is exerted on coil 32 and thus on actuator 18. The torque on actuator 18 is set out in Equation 3 below. EQU T=K.sub.t I (3)
Where K.sub.t is the torque constant and I is the current in coil 32.
FIG. 4 shows a graph of the torque constant, K.sub.t, of the dc motor described above as a function of head position over disk 14 of FIG. 1. Referring now to FIG. 4, the Y-axis is the torque constant K.sub.t. It is measured in In-oz per ampere. The X-axis is distance across disk 14. For purposes of describing the invention, the units of measure of distance are tracks. However, it is often measured in degrees of rotation of head 20 around actuator pivot point 22. As a matter of convention, track zero is the track closest to the outside diameter of disk 14 and is labeled O/D in FIG. 4. The highest number track number N0 is the track closest to the inside diameter and is labeled I/D in FIG. 4. A disk drive uses a fixed and predetermined number of tracks, such as 2500. Crash stop 26 and crash pin 32 are designed in conjunction with the density of tracks on disk 14 to allow head 20 to traverse no more than 2500 tracks.
FIG. 4 makes it clear that the torque constant, K.sub.t, is not, in fact, a constant over the entire range of motion of the head. The torque constant, K.sub.t, starts at a value K.sub.t1 at track 1 and increases to a maximum, K.sub.t2. It remains at value K.sub.t2 for most of the distance across the disk and then gradually decreases to value K.sub.t3 for track 2500. A design goal is to operate the actuator such that its operating range is symmetric with respect to the torque constant non-linearity curve.
The reason that K.sub.t falls off as the head approaches either edge of the disk is best understood by an examination of FIGS. 2 and 3. From these Figures it can be seen that as head 20 approaches either extreme angular position, segments 54 and 56 of coil 32 approach the ends of permanent magnets 38 and 44. At these positions, coil 32 intersects fewer lines of magnetic flux from the permanent magnets. The force on coil 32 is correspondingly reduced and thus the torque constant is reduced. Making permanent magnets 38 and 44 larger is not a solution since users are demanding smaller not larger disk drives.
The fact that K.sub.t is not a constant over the entire stroke of actuator 18 is a problem that has been addressed in the prior art. The deviation of K.sub.t from being a constant value can be compensated for by the microprocessor controlling the disk drive. This is accomplished by developing a look up table, called a torque constant multiplier table, and placing it in the memory of the microprocessor that controls the disk drive. The table provides a torque constant multiplier for each track from track 0 to N0. FIG. 5 is a graphic illustration of the torque constant multiplier table. In FIG. 5, the X-axis is track number and the Y-axis is torque constant multiplier. Referring now to FIG. 5, curve 61 has a basic shape that is the inverse of torque constant curve 60 of FIG. 4. The values in the torque constant multiplier table are unity (1.0) in the mid-region where the torque constant is substantially constant and the multiplier increases at the stroke endpoints where the actuator torque constant magnitude decreases.
In operation, when a seek request is received from the host computer, the microprocessor in the disk drive accesses the torque constant multiplier table based upon the track number over which the head is positioned as determined from the servo information encoded on each track. As the actuator moves the heads across the surface of the disk, the microprocessor compensates for the actuator's non constant torque constant by reading a value from the torque constant multiplier table. The value from the torque constant multiplier table is used to adjust the amount of current supplied to the actuator. The result is a drive with actuator dynamics which closely resemble an ideal system in which the actuator torque constant is flat throughout the stroke. During a seek, each time a different track number is read by the head, indicating a new actuator location, a new value is read from the torque constant multiplier table and the actuator current is modified accordingly.
In addition, when the disk drive is initially powered on, the microprocessor performs a mid stroke calibration to additionally compensate for any torque constant magnitude variation from nominal that may be present in that particular disk drive.
However a problem arises because of the mechanical tolerances of the manufacturing process. Of particular relevance in the manufacturing process are the steps of gluing the permanent magnets to the magnet assembly, drilling holes in the magnet assembly and into the disk drive substrate and drilling the crash pin hole. There are mechanical tolerances associated with each of these steps. That is, the magnets will be glued and the holes drilled in slightly different places for each drive as it is manufactured. These tolerances are such that the stroke of actuator 18, while remaining a constant 2500 tracks, cause coil 32 to reach different extreme positions with respect to permanent magnets 38 and 44 for each drive. The results of this variation can best be understood by reference to FIG. 6.
The axes of FIG. 6 are the same as FIG. 4. Curve 62 is a graph of the actual variation of torque constant, K.sub.t, as a function of head position for a drive that has been assembled such that the end point of movement of coil 32 with respect to permanent magnets 38 and 44 is quite different from that for the drive represented in FIG. 4. In FIG. 6, the symmetry of the curve with respect to mid stroke is no longer present. The peak value of K.sub.t at mid stroke, K.sub.t2, in FIGS. 4 and 6, is not necessarily the same magnitude in both curves. Any differences in the peak value of torque constant, K.sub.t2, is compensated for by the mid stroke calibration performed after the drive is initially powered on. If the torque constant multiplier table resident in the microprocessor memory were that as shown in FIG. 5, seek time performance would not be optimum since the torque multiplier table does not match the actuator torque constant profile for the drive under consideration.
Thus it can be seen that the variations in the mechanical assembly of a drive can cause significant errors in the torque constant multiplier table. So, even with a torque constant multiplier table in memory, the servo loop may not receive an accurate number for torque constant multiplier for tracks close to the beginning or end of the operating range.